package com.ljf.authority.service;

import com.ljf.authority.dto.command.AuthorityDatPermissionGroupCommand;
import com.ljf.authority.dto.command.AuthorityDatPermissionGroupMenuCommand;
import com.ljf.authority.dto.command.AuthorityDatPermissionGroupUserCommand;
import com.ljf.authority.dto.query.AuthorityDatPermissionGroupQuery;
import com.ljf.authority.vo.AuthorityDatPermissionGroupMenuVO;
import com.ljf.authority.vo.AuthorityDatPermissionGroupUserVO;
import com.ljf.authority.vo.AuthorityDatPermissionGroupVO;
import com.ljf.common.exception.ServiceException;
import com.ljf.common.result.ServiceResultModel;
import com.ljf.common.service.IBasisService;

/**
 * 权限组  服务接口定义
 * 
 * @author LJF
 * @since 2025-06-08
 */
public interface IAuthorityDatPermissionGroupService extends IBasisService<AuthorityDatPermissionGroupQuery, AuthorityDatPermissionGroupVO, AuthorityDatPermissionGroupCommand> {

    /**
     * 修改权限组菜单
     *
     * @param command
     * @return
     * @throws ServiceException
     */
    ServiceResultModel editMenu(AuthorityDatPermissionGroupMenuCommand command) throws ServiceException;

    /**
     * 修改权限组用户
     *
     * @param command
     * @return
     * @throws ServiceException
     */
    ServiceResultModel editUser(AuthorityDatPermissionGroupUserCommand command) throws ServiceException;

    /**
     * 查询权限组菜单
     *
     * @param id
     * @return
     * @throws ServiceException
     */
    ServiceResultModel<AuthorityDatPermissionGroupMenuVO> queryMenuById(Long id) throws ServiceException;

    /**
     * 查询权限组用户
     *
     * @param id
     * @return
     * @throws ServiceException
     */
    ServiceResultModel<AuthorityDatPermissionGroupUserVO> queryUserById(Long id) throws ServiceException;

}
